/*
 * ISTY 1
 * Projet IDD
 * Jeu de société Caylus
 *
 * Groupe 9:
 *      Bedhiaf Mouna
 *      Joober Nizar
 *      Labassi Amine
 *      Sridi Med Mahdi
 * Année 2008/2009
 */
package caylus.Model;

import java.io.Serializable;


/**
* caylus
 *
 * le lancement d'une partie du Jeu Caylus nécessite un Bailli.
 * Une unique instance est crée à partir de cette classe pour une même partie.
 * Le bailli détermine si les cases du plateau du jeu sont activable ou pas, selon sa position.
 * Il peut aussi déterminer la fin d'une partie
 *
**/
public class Bailli implements Serializable{

	private int _position;
	private transient Prevot _prevot;

    /**
     *
     */
    public Bailli() {
        _position = 12;
    }

	// Constructeur
    /**
     * Ce constructeur n'est appelé qu'une seule fois pendant une partie
     * Le bailli est initialement posé sur la case 12 du plateau
     * Dés sa création le bailli a une référence sur le prévot.
     * @param pPrevot
     */
    public Bailli(Prevot pPrevot)
	{
		_position = 12; // position initiale du Bailli 'preparation'
        _prevot = pPrevot;
	}


    /**
     *
     * @return La position du Bailli sur le plateau du jeu
     */
    public int getPosition()
	{
		return _position;
	}

    /**
     *
     * @param pPrevot
     */
    public void setPrevot(Prevot pPrevot)
	{
		_prevot = pPrevot;
	}

    /**
     *  est appelée à la phase sept
     *  Le bailli avance selon sa position par rapport au prévot (comme décrit dans les regles du jeu Caylus)
     */
    public void avancer()
	{
		if (_position >= _prevot.getPosition())
		{
			_position++;
		}
		else
			_position = _position + 2;
	}

}
